The invention relates in general to computer systems and more specifically to an apparatus, system, and method for communicating with a target device.
Devices within computer systems typically communicate using a standard protocol that governs the communication between the devices. Among other requirements, protocols typically determine the type of error checking methods used, the type of data compression methods used, how the transmitting device indicates that a transmission has been completed, and how the receiving device indicates that a message has been received. Examples of some of the currently utilized protocols include SCSI (Small Computer System Interface), IDE (Integrated Drive Electronics), Fibre Channel, and serial interface protocols. Numerous variations of the above-mentioned protocols, as well as other protocols, exist. Many protocols are defined by published standards allowing access to the details of the protocol to manufactures and others. Devices from different manufactures can communicate with each other if the devices comply with the published specification. In addition to the transmission and reception techniques and requirements, a particular protocol specification may indicate a standard convention for exchanging device information. The information exchange convention governs the format of the device information stored within the target device and the appropriate procedure and commands for accessing the device information. For example, the SCSI specification indicates a convention that specifies mode pages that include device information. The SCSI information exchange convention indicates the standard method to request, transmit, and format mode pages containing device information.
Although many protocols, such as SCSI, specify the standard information exchange convention, many devices that communicate using the particular protocol do not use the standard convention, incorrectly return information that was not requested, or return device information within a format that does not conform to the standard information exchange convention. Further, some device manufactures provide additional device information that is only accessible using a nonstandard information exchange conventions. For example, most SCSI devices do not fully comply with the SCSI information exchange convention. Many of the mode pages specified are not available with some SCSI devices. Further, additional nonstandard mode pages providing useful device information can not be accessed using the SCSI information exchange convention.
This limitation is particularly problematic in distributed computer systems that are managed by a network manger application. Distributed computer systems include a variety of interconnected devices and may include any number of networked devices such as computers, servers, and memory storage devices that are interconnected through a network that includes a combination of network devices. A network typically includes a combination of interconnected network devices such as hubs, switches, and routers. Many of the network devices and networked devices operate in accordance with a configuration that can be set and modified. The configuration is typically managed with the use of configuration objects that represent logical or virtual arrangements and relationships and define any number of structures, allocations, operational rules, priorities, preferences, or functions related to memory, data storage, bandwidth, communication paths, and communication protocols. Many conventional systems utilize a network manager such as a network management application running on a management sever to manage the distributed computer network. The network manager communicates with network devices and networked devices to exchange information and to change configurations settings in accordance with the management tasks. Often, these communications are performed within the same communication channels where data signals are transmitted and are, therefore, typically referred to as “in-band” communications. The in-band communications comply with the protocol used within the communication channel. The SCSI protocol is commonly used in distributed computer systems as well as in integrated collocated, “local”, computer systems. Using the SCSI protocol, the management application exchanges queries, acknowledgements, control signals, configuration parameters, and data with a target device which may be any network device or networked device. Devices utilize software implementing an API (Application Programming Interface) to communicate using the channel protocol and to execute various instructions.
As discussed above, however, conventional techniques are limited in that the many devices in a computer system do not conform to the standard information exchange convention dictated by the particular published specification. As a result, conventional network management applications can not effectively communicate with many target devices. Often, basic information such as a serial number is not available to the network manager through an in-band connection. Further, more efficient techniques of managing the computer system may be unavailable to the network manager because useful device information is accessible only through a nonstandard information exchange convention.
One attempted solution to this problem includes configuring the network manager to include a device manager implementing an appropriate API for each device that will be managed by the network manager. This technique is limited in that the network manager must be modified or replaced when new devices are connected within the system that utilize new, non-standard APIs. Further, since the number of potential devices utilizing non-standard APIs is expansive and continually increasing, the requirements for a standard network manager approach unmanageable complexity and size.
Accordingly, there is a need for an apparatus, system, and method for establishing communication and exchanging device information with a target device within a computer system.